Skip to main content

Studio deployment in a Kubernetes cluster with Helm charts

Customise the Helm chart

The Helm chart is a collection of Kubernetes manifest files that define the resources needed to deploy the Business Studio in a Kubernetes cluster.

Helm chart definitions are available from One37's private Helm Chart registry, which you can access by logging in to the provided image registry host.

Credentials for the image registry host will be provided to you by One37.

You WILL need to download the Helm chart to a working folder and customise the values.yml file to suit your environment.

docker login [provided-image-registryhost]
# Enter your credentials when prompted
helm pull one37/studio

This will download the Helm chart to your local machine. You can then extract the contents and customise the values.yml file.

The following is a sample values.yml file highlighting the key parameters you will need to customise.

tip

Other parameters, hidden in this sample, are present in the values.yml file and can be left as default or customised as needed.

values.yml

nameOverride: one37id-studio # Name of the Studio deployment - recommended to leave as default
postgresName: [name-of-your-postgres-deployment]
tlsSecret: [name-of-your-tls-secret]
studioHostname: [your-studio-public-hostname]

replicaCount: [number-of-replicas]

image:
repository: [provided-image-registryhost]/studiofe/prod
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "latest"

# The name of the sercet to use for pulling the image from the registry
# A sample chart is available to deploy this secret
imagePullSecrets: [{"name": "[one37secrets]"}]

...

service:
type: ClusterIP
port: [your-studio-internal-port]

ingress:
enabled: true
# className: nginx # use this for Azure with open source nginx ingress controller
className: [ingress-controller-class] # this is specific to your Kubernetes provider
annotations:
affinity: "cookie"
proxybodysize: "50m"
sessioncookietimeout: "36000"
nginx.org/websocket-services: [name-of-your-studio-service] # websocket support with nginx ingress controller
hosts:
- paths:
- path: /
pathType: Prefix
port: [your-studio-internal-port]

...

environment:
MINIMUM_LOG_LEVEL: 1
# STUDIO database params defined in configmap
STUDIO_PG_HOST: [postgres-deployment-service-name] # or IP/hostname if outside the cluster
STUDIO_PG_PORT: [postgres-deployment-service-port]
# Access the Kubernetes API to set replica count
# Is the Studio running in the same Kubernetes as the managed Business Connectors? Empty string disables the feature.
RUN_IN_SAME_K8s: "true"
# Path to the kubeconfig file, either mounted as a volume secret or to a file on local disk
# Provides access to the Kubernetes API for scaling the Business Connectors from the Studio
K8S_CONFIG_PATH: "/etc/kubeconfig"
K8S_AGENT_DEPLOYMENT_NAME: [name-of-your-bc-deployment]
K8S_AGENT_NAMESPACE: one37id # Namespace where the Business Connectors are deployed

# Secrets for accessing the database that runnning the same clust
secrets:
create: true
postgresSecretName: [name-of-your-postgres-secret]
redisSecretName: [name-of-your-redis-secret]
app:
STUDIO_PG_USER: [your-db-user]
STUDIO_PG_ADMIN_USER: [your-db-user]

postgres:
passwordKey: [your-db-password-key-in-the-secret]

...

Use of Kubernettes Secrets

Numerous secrets are required to be created in the Kubernetes cluster to support the Business Studio deployment.

These secrets are used to store sensitive information, such as database passwords, may have been created during the deployment of that relevant service or need to be created manually.

Kuberettes Ingress Controller

Different Kubernetes providers have different ingress controllers, and the className parameter in the values.yml file must be set to the correct value for your provider.

Also ensure the corrrect reference to the secret containing the TLS certificate for the ingress is set in the values.yml file.

Deploy the Business Studio

info

You will need to have Helm installed on your local or jumpbox workstation and have access to a Kubernetes cluster to deploy the Business Studio.

To deploy the Business Studio, run the following command in the same directory as the values.yml file:

helm install studio one37/studio -f values.yml

This will deploy the Business Studio in your Kubernetes cluster.

IMPORTANT

Ensure that your have the correct permissions to deploy resources in the cluster and have switched to the correct context.

Use whichever Kubernetes tools you are comfortable with to monitor the deployment and ensure it is running as expected.

tip

You can check the status of the Business Studio by running kubectl get pods and looking for the one37id-studio pod.

X

Graph View